package com.elguile.laptop.vista;

import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.Panel;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.TrayIcon.MessageType;
import java.awt.image.BufferedImage;
import javax.swing.Icon;
import javax.swing.plaf.metal.MetalIconFactory;

public class Mensaje {

	private static Mensaje mensaje;

	private Mensaje() {

	}

	public static Mensaje instancia() {
		if (mensaje == null)
			mensaje = new Mensaje();
		return mensaje;
	}

	public void muestra(String titulo, String contenido,
			TrayIcon.MessageType messageType) {
		TrayIcon trayIcon = new TrayIcon(getImage(), "el guile");
		SystemTray systemTray = SystemTray.getSystemTray();
		try {
			systemTray.add(trayIcon);

			trayIcon.displayMessage(titulo, contenido, messageType);
		} catch (AWTException e) {
			throw new RuntimeException(e);
		}

	}

	public void error(String titulo, String contenido) {
		Toolkit.getDefaultToolkit().beep();
		muestra(titulo, contenido, MessageType.ERROR);
	}

	private Image getImage() throws HeadlessException {
		Icon defaultIcon = MetalIconFactory.getTreeComputerIcon();
		Image img = new BufferedImage(defaultIcon.getIconWidth(),
				defaultIcon.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR);
		defaultIcon.paintIcon(new Panel(), img.getGraphics(), 0, 0);

		return img;
	}

}
